// pages/login/login.js
import Toast from '@vant/weapp/toast/toast';
import { createStoreBindings } from 'mobx-miniprogram-bindings'
import { store } from '../../store/store'

Page({
  /**
   * 页面的初始数据
   */
  data: {
    number: '18770832185',
    valid: '246810',
    mobile_reg: '',
    code_reg: '',
    flag: true,
    time: 60 * 1000,
    countDown: true
  },

  onFinish(e) {
    this.setData({
      countDown: true
    })
  },

  // 发送验证码
  async check() {
    if(!this.data.flag) return
    this.setData({
      countDown: false
    })
    try {
      await wx.p.request({
        url: `https://toutiao.itheima.net/v1_0/sms/codes/${this.data.number}`,
        method: 'GET'
      })
      Toast.success('亲，发送成功了')
    } catch (err) {
      console.log(err);
    }
    // 倒计时
    const countDown = this.selectComponent('.control-count-down');
    countDown.start();
  },

  // 校验手机号
  numberBlur(e) {
    var reg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
    if(reg.test(e.detail.value)) {
      this.setData({
        mobile_reg: '',
        flag: true
      })
    } else {
      this.setData({
        mobile_reg: '手机号码格式不正确',
        flag: false
      })
    }
  },
  // 校验验证码
  validBlur(e) {
    var reg = /\d{6}/
    if(reg.test(e.detail.value)) {
      this.setData({
        code_reg: '',
        flag: true
      })
    } else {
      this.setData({
        code_reg: '验证码格式不正确',
        flag: false
      })
    }
  },
  // 输入手机号
  onChangeNumber(event) {
    // event.detail 为当前输入的值
    this.setData({
      number: event.detail
    })
  },

  // 输入验证码
  onChangeValid(event) {
    // event.detail 为当前输入的值
    this.setData({
      valid: event.detail
    })
  },

  // 登录
  async login() {
    try {
      if(!this.data.flag) return
      const { data: res } = await wx.p.request({
        url: 'https://toutiao.itheima.net/v1_0/authorizations',
        method: 'POST',
        data: {
          mobile: this.data.number,
          code: this.data.valid
        },
        header: {
          Authorization: `Bearer ${store.token}`
        }
      })
      this.updateToken(res.data.token)
      this.updateRefreshToken(res.data.refresh_token)
      // 跳转到用户页面
      wx.switchTab({
        url: '/pages/user/user'
      })
    } catch(err) {
      // console.log(err);
      Toast.fail('登录失败');
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.storeBindings = createStoreBindings(this, {
      store,
      fields: ['refresh_token', 'token', 'info'],
      actions: ['updateRefreshToken', 'updateToken', 'updateInfo']
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    this.storeBindings.destroyStoreBindings()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})